package process

import (
	"fmt"
	commonmodel "helloword01/31chatroom/common/model"
)

// 客户端存储在线用户
var onlineUsers map[int]*commonmodel.User = make(map[int]*commonmodel.User, 10)

func printOnlineUser() {
	fmt.Print("在线用户: ")
	for id, _ := range onlineUsers {
		fmt.Printf("ID=%d \t", id)
	}
	fmt.Println()

}

// updateUserStatus
//
//	@Description: 修改用户在线状态，并放入客户端在线map
//	@param notifyUserStatusMes
func updateUserStatus(mes *commonmodel.NotifyUserStatusMes) {
	fmt.Printf(">>>>用户: %d 上线啦！\n", mes.UserId)
	user, ok := onlineUsers[mes.UserId]
	if !ok {
		user = &commonmodel.User{
			UserId: mes.UserId,
		}
		user.UserStatus = mes.Status
		onlineUsers[mes.UserId] = user
		printOnlineUser()
	}

}

// putUserToOnlineUser
//
//	@Description: 将用户放入在线用户列表
//	@param u
func putUserToOnlineUser(u *commonmodel.User) {
	user, ok := onlineUsers[u.UserId]
	if !ok {
		user = u
		onlineUsers[u.UserId] = user
	}
}

// removeUserFromOnlineUser 将用户从在线用户列表移除
//
//	@Description:
//	@param userId
func removeUserFromOnlineUser(userId int) {
	delete(onlineUsers, userId)
}

func printOnlineUserInfo() {
	for id, user := range onlineUsers {
		fmt.Printf("用户id=%d \n", id, user.UserName, user.Sex)
	}

}
